From 6cf19e1c58dc6366a683e8e132278daa87e03ee2 Mon Sep 17 00:00:00 2001 From: "kaf24@labyrinth.cl.cam.ac.uk" Date: Sat, 15 Feb 2003 16:31:15 +0000 Subject: [PATCH] bitkeeper revision 1.46 (3e4e6b53EtGPJlAd7c0wbeRNLhdvqQ) network.c: A better fix for disabling net ring teardown. --- .../arch/xeno/drivers/network/network.c | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/xenolinux-2.4.16-sparse/arch/xeno/drivers/network/network.c b/xenolinux-2.4.16-sparse/arch/xeno/drivers/network/network.c index c9c6718fd1..4c4ace1006 100644 --- a/xenolinux-2.4.16-sparse/arch/xeno/drivers/network/network.c +++ b/xenolinux-2.4.16-sparse/arch/xeno/drivers/network/network.c @@ -213,13 +213,6 @@ static void network_alloc_rx_buffers(struct net_device *dev) static void network_free_rx_buffers(struct net_device *dev) { - /* - * XXXX This cannot be done safely until be have a proper interface - * for setting up and tearing down virtual interfaces on the fly. - * Currently the receive buffers are locked down by Xen and we have - * no sensible way of retrieving them. - */ -#if 0 unsigned int i; struct net_private *np = dev->priv; struct sk_buff *skb; @@ -229,7 +222,6 @@ static void network_free_rx_buffers(struct net_device *dev) skb = np->rx_skb_ring[i]; dev_kfree_skb(skb); } -#endif } static int network_start_xmit(struct sk_buff *skb, struct net_device *dev) @@ -352,14 +344,27 @@ int network_close(struct net_device *dev) struct net_private *np = dev->priv; netif_stop_queue(dev); + free_irq(NET_RX_IRQ, dev); free_irq(NET_TX_IRQ, dev); + + /* + * XXXX This cannot be done safely until be have a proper interface + * for setting up and tearing down virtual interfaces on the fly. + * Currently the receive buffers are locked down by Xen and we have + * no sensible way of retrieving them. + */ +#if 0 network_free_rx_buffers(dev); kfree(np->net_ring->rx_ring); kfree(np->net_ring->tx_ring); +#endif + kfree(np->rx_skb_ring); kfree(np->tx_skb_ring); + MOD_DEC_USE_COUNT; + return 0; } -- 2.30.2